Object detection is an important problem in a variety of engineering and scientific disciplines such as computer vision, artificial intelligence, and biometrics. For example, in the many industrial settings today, robots are used for parts assembly and manufacturing. These robots are equipped with one or more cameras, e.g. CCD and CMOS, which give them vision. Often, objects (i.e. parts) are contained in a bin. The robot must recognize the object/part in the bin so it can pick it up to assemble the product. However, the object can be in any number of poses (position, orientation, rotation), under various lighting conditions, etc. So, the robot must be trained to recognize the part regardless of its pose and environment. As is known in the art, robots include software that attempts to identify the object from the camera image. Statistical learning and classification has been successfully used for many of such object detection applications.
In a real-world environment, the appearance of the object changes dramatically due to the change in view perspective, illumination, or deformation. As such, a single classifier cannot effectively detect objects whose appearance is subject to many changes. Classifier networks are general solutions based on the divide-and-conquer concept. The classifier networks must be trained to properly classify (detect, recognize) the particular object(s) of interest, such as an assembly line part. Generally, the process starts with an untrained network. A training pattern (e.g. images of the object in various poses and lighting conditions and possibly false target images) is presented to the network. The image signals are passed through the network to produce an output (classification result—yes/no object detection). The output results are evaluated and compared to optimal classification results and any differences are errors. This error can be a scalar function of weights that are assigned to features of the object image, for example. Some features are better than others for recognizing the object and may be assigned a greater weight. The weights are iteratively adjusted to reduce the error and thus give greater confidence in the classification network. It is desirable to automatically train a classification network with minimum error, time, and effort.